gsk: Fix serialization of glyphs
authorMatthias Clasen <mclasen@redhat.com>
Mon, 21 Dec 2020 15:46:59 +0000 (10:46 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 21 Dec 2020 15:49:56 +0000 (10:49 -0500)
We were forgetting to put a space between two numbers
in some cases, confusing the parser.

Test included.

Fixes: #3496
gsk/gskrendernodeparser.c
testsuite/gsk/nodeparser/text.node [new file with mode: 0644]
testsuite/gsk/nodeparser/text.ref.node [new file with mode: 0644]

index 756147adb25b788169e99f40312d87b7e6d7eefd..a77e8a5a9a756819f9fb39a7681ce2d454205905 100644 (file)
@@ -2692,7 +2692,7 @@ render_node_print (Printer       *p,
                 glyphs[i].geometry.x_offset != 0 ||
                 glyphs[i].geometry.y_offset != 0)
             {
-              g_string_append_printf (p->str, "%g %g",
+              g_string_append_printf (p->str, " %g %g",
                                       (double) glyphs[i].geometry.x_offset / PANGO_SCALE,
                                       (double) glyphs[i].geometry.y_offset / PANGO_SCALE);
               if (!glyphs[i].attr.is_cluster_start)
diff --git a/testsuite/gsk/nodeparser/text.node b/testsuite/gsk/nodeparser/text.node
new file mode 100644 (file)
index 0000000..58cd102
--- /dev/null
@@ -0,0 +1,6 @@
+text {
+  color: rgb(50,50,50);
+  font: "Cantarell 11";
+  glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
+  offset: 0 32.0186;
+}
diff --git a/testsuite/gsk/nodeparser/text.ref.node b/testsuite/gsk/nodeparser/text.ref.node
new file mode 100644 (file)
index 0000000..58cd102
--- /dev/null
@@ -0,0 +1,6 @@
+text {
+  color: rgb(50,50,50);
+  font: "Cantarell 11";
+  glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
+  offset: 0 32.0186;
+}